package Capa_Presentacion;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;


import Capa_Datos.CD_Detallegs;
import Capa_Datos.CD_Horario;
import Capa_Datos.CD_Persona;
import Capa_Datos.CD_Software;
import Capa_Datos.CD_Soporte;
import Capa_Negocio.CN_IdentServicio;
import Capa_Negocio.CN_ImplIdentServicio;
import Capa_Negocio.CN_ImplSolServicio;
import Capa_Negocio.CN_SolServicio;

public class CP_ConsulSolSop implements Serializable{
	private CD_Soporte soporte; 
	private CD_Detallegs detalle=new CD_Detallegs();	
	private CD_Detallegs dll=new CD_Detallegs();
	private List<CD_Detallegs> ListDetalle;
	private List<CD_Detallegs> filteredlist;
	private CN_SolServicio SolServicio; 
	private List<CD_Horario> ListHorario; 
	private List<String> ListEstado;
	private CN_IdentServicio IdentServicio;
	private CD_Persona profesor=new CD_Persona();
	private static final long serialVersionUID = 1L;
	
   
	public CP_ConsulSolSop(){
		//inicializar();
		SolServicio=new CN_ImplSolServicio();
		IdentServicio=new CN_ImplIdentServicio();
		ListDetalle=new ArrayList<CD_Detallegs>();
		filteredlist=new ArrayList<CD_Detallegs>();
		ListHorario=new ArrayList<CD_Horario>();
		ListDetalle=SolServicio.ListaGeneralDetalleGS();
		filteredlist=ListDetalle;
		LlenarEstado();
	}
	
	public void LlenarEstado(){
		ListEstado=new ArrayList<String>();
		ListEstado.add("Pendiente");
		ListEstado.add("Aceptado");
		ListEstado.add("Instalado");
		ListEstado.add("Rechazado");
		
	}
	
	public void inicializar(){
		FacesContext context = FacesContext.getCurrentInstance();
		 soporte=new CD_Soporte();
		 HttpServletRequest request =(HttpServletRequest) context.getExternalContext().getRequest();
		 soporte= (CD_Soporte) request.getAttribute("entrada");
		 
		 try {
			context.getExternalContext().redirect( "/ProyLabo/faces/view/ConsulSolSoporte.xhtml");
		  } catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void VerDetalle() throws IOException{
		
		FacesContext context = FacesContext.getCurrentInstance();
		ListHorario=new ArrayList<CD_Horario>();
		dll=new CD_Detallegs();
		dll=detalle;
		String idProfesor= dll.getGrupo().getProfesor().getIdProfesor();
		ListHorario=SolServicio.ListaHorario(dll.getGrupo().getCurso(), idProfesor);
        profesor=IdentServicio.buscarDatosProf(idProfesor);
		
		
		if(dll.getSolicitud().getDescripcion()==null){
			dll.getSolicitud().setRespuesta("No hay datos adicionales");
		}
		
		 context.getExternalContext().redirect( "/ProyLabo/faces/view/RespConSopor.xhtml");
	}

	public CD_Persona getProfesor() {
		return profesor;
	}

	public void setProfesor(CD_Persona profesor) {
		this.profesor = profesor;
	}

	public void Responder(){
		
		 FacesContext context = FacesContext.getCurrentInstance();
		   String mensaje="";
		 if(SolServicio.RespSolicitud(dll)==1) {
			 mensaje="Se ha completado la actualizacion";
			 ListDetalle=new ArrayList<CD_Detallegs>();
			 detalle=new CD_Detallegs();
			 ListDetalle=SolServicio.ListaGeneralDetalleGS();
			 filteredlist=ListDetalle;
			 
			
		 }
	     else mensaje="Los datos ingresados son incorrectos";
	     
		 context.addMessage(null, new FacesMessage("Mensaje : ", mensaje));
	}
	
	public List<String> getListEstado() {
		return ListEstado;
	}

	public void setListEstado(List<String> listEstado) {
		ListEstado = listEstado;
	}

	public CD_Soporte getSoporte() {
		return soporte;
	}

	public void setSoporte(CD_Soporte soporte) {
		this.soporte = soporte;
	}

	public CD_Detallegs getDetalle() {
		return detalle;
	}

	public void setDetalle(CD_Detallegs detalle) {
		this.detalle = detalle;
	}

	public CD_Detallegs getDll() {
		return dll;
	}

	public void setDll(CD_Detallegs dll) {
		this.dll = dll;
	}

	public List<CD_Detallegs> getListDetalle() {
		return ListDetalle;
	}

	public void setListDetalle(List<CD_Detallegs> listDetalle) {
		ListDetalle = listDetalle;
	}

	public List<CD_Detallegs> getFilteredlist() {
		return filteredlist;
	}

	public void setFilteredlist(List<CD_Detallegs> filteredlist) {
		this.filteredlist = filteredlist;
	}

	public List<CD_Horario> getListHorario() {
		return ListHorario;
	}

	public void setListHorario(List<CD_Horario> listHorario) {
		ListHorario = listHorario;
	}

	public void consultarVista(){
		FacesContext contex = FacesContext.getCurrentInstance(); 		 
		try {		
			contex.getExternalContext().redirect( "/ProyLabo/faces/view/ConsulSolSoporte.xhtml" );
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		
	}
}
